package com.lzc.tlmail.tlmailproduct;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;


/**
 * 1整合MyBatis-Plus
 *    1)导入依赖
 *       mybatis-plus-boot-starter
 *    2)  配置
 *       1=,配置数据源
 *         一 导入驱动 mysql 8
 *         二 添加数据源信息
 *       2= 配置mybaits-plus
 *         一 使用@Mapperscan注解扫描
 *         二 指定 sql映射文件位置
 * 2使用逻辑删除
 *  1) 给要逻辑删除的字段加上注解@TableLogic
 *
 *  3 jsr303
 *    1) 给bean添加校验注解 javax.validation.constraints这个包下面 messege 属性设置自己想要的提示
 *    2) 使用@Valib在controller传入的数据 加上 开启校验
 *    3)给校验的bean后紧跟一个BindingResult，就可以获取到校验的结果
 *    4) 分组校验
 *        1)给校验的注解后面加上group属性 这个属性是一个接口数组 表示可以属于哪些组 这些接口都是自己定义的
 *          例如@NotNull(groups = {UpdateGroup.class})这个注解就是属于修改分组
 *         2） @Valib注解换成@Validated(这里也是写接口分组)
 *
 * 4 统一的异常处理
 * @ControllerAdvice
 *  1)
 *
 *  8整合SpringCache 简化缓存开发
 *  1引入依赖
 *  <dependency>
 *             <groupId>org.springframework.boot</groupId>
 *             <artifactId>spring-boot-starter-cache</artifactId>
 *         </dependency>
 *   2使用redis就要引入redis
 *   2写配置
 *       1）自动配置了哪些？都配好了
 *       2）我们只需要配置类型  名字
 */

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.lzc.tlmail.tlmailproduct.feign")
public class TlmailProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(TlmailProductApplication.class, args);
    }

}
